﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BAL.EstRec.Common;

namespace BAL.EstRec.HQConsolidacion
{
    public class ModelConsolidate
    {
        System.Timers.Timer t;
        bool _jobDone;
        string _message;
        private long unidVersion;
        CosolidaHQ objConsHQ;
        public bool IsRuning{get;set;}
        public AppConfs cnfs;
        IDlgLoaderDataContext dc;
        IDlgLoader dlgLoader;
        IConsolidacionHQUIRefresh uiRefresher;

        public long UnidVersion
        {
            get
            {
                return unidVersion;
            }
            set
            {
                unidVersion = value;
                this.objConsHQ = new CosolidaHQ(this.cnfs, this.unidVersion, this.dc);
            }
        }

        private void start()
        {
            t.Start();
        }

        public void consolidateStart()
        {
            //---------- original
            cnfs = new AppConfs();
            //----------
            t = new System.Timers.Timer(100);
            t.Enabled = true;
            t.Elapsed += new System.Timers.ElapsedEventHandler(consolidate);
            this.start();

        }//

        public void consolidate(Object sender, System.Timers.ElapsedEventArgs args)
        {
            this.t.Enabled = false;
            #region lógica
            // código para la consolidacion

            //Descargar archivos más actuales de recursos (por version) de Workpoint

            //Descargar archivos más actuales de recursos (por version) de carpeta compartida

            //Consolidar información de los archivos xls de recursos (por version)

            //Setear en base de datos la version como consolidada (actualizar isconsolidated)

            //Exportar archivo por txt por versi{ón con la bandera en 1. Este archivo indica a FDV que la versión ha sido consolidad y 
            //por lo tanto ya no puede ser modificada
            #endregion

            try
            {
                ((System.Timers.Timer)sender).Stop();
                objConsHQ.consolidate(this.dc);
                this.uiRefresher.loadDataFromUIThread();
                this.dc.JobDone = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public ModelConsolidate(AppConfs confs, long unidVersion, IDlgLoaderDataContext dc, IConsolidacionHQUIRefresh uiRefresher)
        {
            this.cnfs = confs;
            this.unidVersion = unidVersion;
            this.dc = dc;
            this.objConsHQ = new CosolidaHQ(this.cnfs, this.unidVersion, this.dc);
            this.uiRefresher = uiRefresher;
            //this.dlgLoader = dlgLoader;
        }
    }//EndClass
}
